//
//  ACAssetModel.h
//  AlbumFetch
//
//  Created by 黄志明 on 2017/2/6.
//  Copyright © 2017年 黄志明. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, ACAssetModelType) {
    ACAssetModelTypeUnknown = 0,
    ACAssetModelTypePhoto,
    ACAssetModelTypeVideo,
    ACAssetModelTypeAudio,
};

@interface ACAssetModel : NSObject<NSSecureCoding>

@property (nonatomic, strong) id asset;                       // PHAsset or ALAsset or UIImage 当为UIImage的时候，albumID\TimeLength\albumId有可能是空
@property (nonatomic, strong) NSString *albumIdentifier;      // 相册ID
@property (nonatomic, readonly) id localIdentifier;           // 照片的唯一Id ALAsset 的URL  PHObject 的localIdentifier
@property (nonatomic, readonly) NSTimeInterval duration;      // 时常 video、audio使用
@property (nonatomic, readonly) CGFloat width;                // 宽度 photo 使用
@property (nonatomic, readonly) CGFloat height;               // 高度 photo 使用
@property (nonatomic, assign) ACAssetModelType modelType;

+ (instancetype)modelWithAsset:(id)asset
                       inAlbum:(NSString *)albumId
                          type:(ACAssetModelType)type;

- (void)getAssetPrivateProperty;

@end

@interface ACAlbumModel : NSObject

@property (nonatomic, strong) NSString *name;   
@property (nonatomic, strong) NSString *albumIdentifier; // 图库的Id
@property (nonatomic, assign) NSInteger count;           // 所含照片数目
@property (nonatomic, strong) id result;                 // PFFetchResult 或者 ALAssetsGroup 或者一个array 表示所有的照片或视频

@end
